home *** CD-ROM | disk | FTP | other *** search
- Path: linus.mitre.org!spectre!eachus
- From: eachus@spectre.mitre.org (Robert I. Eachus)
- Newsgroups: comp.lang.ada,comp.lang.c,comp.lang.c++
- Subject: Ada Parsing Tools (was Re: C/C++ knocks the crap out of Ada)
- Date: 18 Mar 1996 19:17:25 GMT
- Organization: The Mitre Corp., Bedford, MA.
- Message-ID: <EACHUS.96Mar18141725@spectre.mitre.org>
- References: <00001a73+00002504@msn.com> <4iah20$p7k@saba.info.ucla.edu>
- <4ica32INN5hn@gambier.ugrad.cs.ubc.ca> <4icja9$1r92@saba.info.ucla.edu>
- <4idh80$6tj@solutions.solon.com>
- NNTP-Posting-Host: spectre.mitre.org
- In-reply-to: seebs@solutions.solon.com's message of 15 Mar 1996 22:49:04 -0600
-
-
- First Alex and Ayacc exist, and allow you to use lex and yacc
- grammars in Ada.
-
- Second, yacc is the worst product I have ever used to build LALR
- parsers. It works, and it does what it says it does. (Although there
- are cases where it does not correctly handle LALR1 grammars, don't get
- me started.) However, it is woefully inadequate as a tool for
- designing grammars. All the other tools I have used for building
- grammars and parsers have had at least the following properties:
-
- 1) Support either full LR(1), LALR(k), LR(k) or even implement
- Early's Algorithm.
-
- 2) Lots of built-in support for error messages and error recovery
- in the final product.
-
- 3) Lost of built-in diagnostics so that grammar errors--or grammar
- forms not supported by the tool--can be diagnosed and fixed.
-
- Yacc is a least common denominator product, however it is not
- currently the state of the (1980) art.
-
- (Robert Dewar has built a very nice custom/recursive descent
- parser for GNAT, but not everyone can do that...)
-
- --
-
- Robert I. Eachus
-
- with Standard_Disclaimer;
- use Standard_Disclaimer;
- function Message (Text: in Clever_Ideas) return Better_Ideas is...
-